Skip to main content

Swagger是什么

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。

Swagger 遵循了 OpenAPI 规范,OpenAPILinux 基金会的一个项目,试图通过定义一种用来描述 API 格式或 API 定义的语言,来规范 RESTful 服务开发过程。

pnpm i @nestjs/swagger

案例

src/doc.ts
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import * as packageConfig from '../package.json'

export const generateDocument = (app) => {

const options = new DocumentBuilder()
.setTitle(packageConfig.name)
.setDescription(packageConfig.description)
.setVersion(packageConfig.version)
.addBearerAuth() // 增加鉴权功能
.build();

const document = SwaggerModule.createDocument(app, options);

SwaggerModule.setup('/api/doc', app, document);
}

Alternate text

ts.config.json
{
"compilerOptions": {
"resolveJsonModule": true,
}
}
src/main.ts
import { generateDocument } from './doc'
async function bootstrap() {
// ....


// 创建文档
generateDocument(app)
await app.listen(3000, '0.0.0.0');
}

Alternate text

import { ApiOperation, ApiTags, ApiResponse, ApiBearerAuth } from '@nestjs/swagger';

@ApiTags('用户')
class user() {
@ApiOperation({
summary: '新增用户',
})
create() {

}
}